import os
os.environ['IMAGEMAGICK_BINARY'] = '/usr/local/bin/convert'
from moviepy.editor import VideoFileClip
from pathlib import Path


def extract_background_music(input_video, output_audio):
    # 加载视频
    video_clip = VideoFileClip(input_video)
    # 提取音频
    audio_clip = video_clip.audio
    # 保存音频文件
    audio_clip.write_audiofile(output_audio)
    # 释放资源
    audio_clip.close()
    video_clip.close()


def get_filename(file_path):
    file_name = os.path.splitext(os.path.basename(file_path))[0]
    return file_name


def traverse_directory_mp4(directory):
    path = Path(directory)
    for mp4_file in path.glob('**/*.mp4'):
        if mp4_file.is_file():
            # 在这里执行文件操作，例如打印文件路径或进行其他处理
            print(mp4_file)
            mp4_file_name = get_filename(mp4_file)
            out_file = 'buff/2_origin_wav/' + mp4_file_name + '.wav'
            extract_background_music(str(mp4_file),out_file)
        if mp4_file.is_dir():
            # 在这里执行子目录操作，例如打印子目录路径或进行其他处理
            print(mp4_file)


path = os.environ['PATH']
os.environ['PATH'] = '/usr/local/bin:' + os.environ['PATH']  # 添加 ffmpeg 路径到环境变量中
# print(os.environ['IMAGEMAGICK_BINARY'])
# 指定要遍历的目录路径
mp4_directory_path = 'buff/1_origin_mp4'
# 调用遍历函数
traverse_directory_mp4(mp4_directory_path)
